<template>
    <div>
      <div class="bg-white grid-content">
        <div style="overflow: hidden; ">
          <div class="mytitle"><svg-icon icon-class="A5" class="myIcon" /> 抽油机设备档案</div>
        </div>
        <!-- 表格 -->
        <el-table :data="tableData" border style="width: 100%" :header-cell-style="{background:'#F5F7FA',color:'#909399'}">
          <el-table-column type="index" label="序号" :index="indexMethod">
          </el-table-column>
          <el-table-column align="center" prop="rq" label="日期">
          </el-table-column>
          <el-table-column align="center" prop="zyq" label="作业区">
          </el-table-column>
          <el-table-column align="center" prop="sbmc" label="设备名称">
          </el-table-column>
          <el-table-column align="center" prop="byqc" label="保养期次">
          </el-table-column>
          <el-table-column align="center" prop="ksbysj" label="开始保养时间">
          </el-table-column>
          <el-table-column align="center" prop="wcsj" label="完成时间">
          </el-table-column>
          <el-table-column align="center" prop="yscbyjgsj" label="与上次保养间隔时间">
          </el-table-column>
          <el-table-column align="center" prop="bygs" label="保养工时">
          </el-table-column>
          <el-table-column align="center" prop="byzynrsj" label="保养主要内容数据 （包括更换主要配件及试车结果）">
          </el-table-column>
          <el-table-column align="center" prop="byfzr" label="保养负责人">
          </el-table-column>
          <el-table-column align="center" prop="ysr" label="验收人">
          </el-table-column>
          <el-table-column align="center" prop="bz" label="备注">
          </el-table-column>
        <!-- 审核页面 -->
          <el-table-column align="center" fixed="right" prop="approveStatus" label="审核状态">
            <template slot-scope="scope">
              <el-tooltip :content="scope.row.approveBz" placement="bottom" effect="light" :disabled="!scope.row.approveBz">
              <el-badge :is-dot="scope.row.approveBz!=''&&scope.row.approveBz!=null" class="item">
              <el-tag :class="scope.row.approveBz?'tagstyle':''"
              :type="
                scope.row.approveStatus == '2'
                  ?'success'
                  :scope.row.approveStatus == '1'
                    ? 'warning'
                    : scope.row.approveStatus == '0'
                      ? 'info'
                      : 'danger'"
                disable-transitions>{{
                scope.row.approveStatus == '2'
                ?'已通过'
                :scope.row.approveStatus == '1'
                  ? '未审核'
                  : scope.row.approveStatus == '0'
                    ? '未提交'
                    : '未通过'
              }}</el-tag>
              </el-badge>
            </el-tooltip>
            </template>
          </el-table-column>
  
          <el-table-column align="center" fixed="right" label="操作" width="100" >
            <template slot-scope="scope">
              <el-button @click="handleClick(scope.row, 'check')" type="text" >查看</el-button>
              <el-button @click="handleClick(scope.row, 'edit')" type="text" >编辑</el-button>
            </template>
          </el-table-column>
        </el-table>
        <!-- 分页器 -->
        <el-pagination align='right'
            background
            @size-change="handleSizeChange" 
            @current-change="handleCurrentChange" 
            :current-page="pageNo"
            :page-sizes="[5,10, 20, 30, 40, 50]" 
            :page-size="pageSize" 
            layout="total, sizes, prev, pager, next, jumper"
            :total="total">
          </el-pagination>
      </div>
  
      <!-- 弹出框 -->
      <el-dialog :title="myDialogTitle" :visible.sync="dialogFormVisible" :before-close="handleClose" custom-class="saveAsDialog">
  
        <el-form :inline="true" :model="CyjsbdaForm" class="demo-form-inline" :rules="rules" ref="CyjsbdaForm" :disabled="isInput" label-position="left" label-width="180px" >
          <!-- <el-divider content-position="left">基础信息</el-divider> -->
          <el-row>
            <el-col :span="12">
              <el-form-item label-position="left" label-width="180px" label="作业区:" prop="zyq">
                <el-input v-model="CyjsbdaForm.zyq" placeholder="请输入作业区"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="设备名称:" prop="sbmc">
                <el-input v-model="CyjsbdaForm.sbmc" placeholder="请输入设备名称"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          
          <el-row>
            <el-col :span="12">
              <el-form-item label="保养期次:" prop="byqc">
                <el-input v-model="CyjsbdaForm.byqc" placeholder="请输入保养期次"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="12">
              <el-form-item label="开始保养时间:" prop="ksbysj">
                <el-date-picker v-model="CyjsbdaForm.ksbysj" align="right" style="width: 187px" width="500px" type="date" placeholder="请选择开始保养时间" value-format="yyyy-MM-dd" :picker-options="pickerOptions">
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="完成时间:" prop="wcsj">
                <el-date-picker v-model="CyjsbdaForm.wcsj" align="right" style="width: 187px"  type="date" placeholder="请选择完成时间" value-format="yyyy-MM-dd" :picker-options="pickerOptions">
                </el-date-picker>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="12">
              <el-form-item label="与上次保养间隔时间:">
                <el-input v-model="CyjsbdaForm.yscbyjgsj" align="right"  placeholder="请输入与上次保养间隔时间"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="保养工时:">
                <el-input v-model="CyjsbdaForm.bygs" align="right" placeholder="请输入保养工时"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="12">
              <el-form-item label="保养主要内容数据 （包括更换主要配件及试车结果）:">
                <el-input v-model="CyjsbdaForm.byzynrsj" placeholder="请输入保养主要内容数据"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="保养负责人:">
                <el-input v-model="CyjsbdaForm.byfzr" placeholder="请输入保养负责人"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="12">
              <el-form-item label="验收人:">
                <el-input v-model="CyjsbdaForm.ysr" placeholder="请输入验收人"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="备注:">
                <el-input v-model="CyjsbdaForm.bz" placeholder="请输入备注"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
        </el-form>
  
        <el-form v-show="!ischeck" :inline="true" :model="CyjsbdaForm" class="demo-form-inline" ref="CyjsbdaForm" label-position="left" label-width="80px">
        <el-form-item label="审核:" >
          <el-select v-model="CyjsbdaForm.approveStatus" placeholder="请选择审核状态">
            <!-- CyjsbdaForm.approveStatus=='0'? CyjsbdaForm.approveStatus == '未审核':CyjsbdaForm.approveStatus=='1'?CyjsbdaForm.approveStatus == '通过':CyjsbdaForm.approveStatus == '不通过' -->
            <el-option label="未审核" value="1"></el-option>
            <el-option label="通过" value="2"></el-option>
            <el-option label="不通过" value="3"></el-option>
          </el-select>
        </el-form-item>

        <el-row>
            <el-form-item label="审核备注:">
              <el-input v-model="CyjsbdaForm.approveBz" placeholder="请输入审核备注"></el-input>
            </el-form-item>
        </el-row>
      </el-form>
  
      <div slot="footer" class="dialog-footer" v-show="!ischeck">
        <el-button @click="close('CyjsbdaForm')">取 消</el-button>
        <el-button type="primary" @click="submitForm('CyjsbdaForm')">确 定</el-button>
      </div>
      </el-dialog>
    </div>
  </template>
  
  <script>
  import CyjsbdaApi from '@/api/sjtb/scgl/cyjsbda';
  
  export default {
    data() {
      return {
        pageNo: 1, //当前页码
        pageSize: 10, //每页显示数量
        total: 0, //总数量
        // table数据
        tableData: [{
            tyjh: '树25-431',//通用井号
            bzjh: '5431',//标准井号
            dw:'榆树林第一作业区',//单位
            jtfs: '注水泵',//距替方式
            sfbfj: '否',//是否报废井
            js: '通用井网油井',//井刷
            czj: '3',//抽注机
            ds: '1',//电视
            kzg: '1',//控制柜
            cys:'1',//采油树
            pd:'111',//皮带
          }, {
              tyjh: '树25-431',//通用井号
            bzjh: '5431',//标准井号
            dw:'榆树林第一作业区',//单位
            jtfs: '注水泵',//距替方式
            sfbfj: '否',//是否报废井
            js: '通用井网油井',//井刷
            czj: '3',//抽注机
            ds: '1',//电视
            kzg: '1',//控制柜
            cys:'1',//采油树
            pd:'111',//皮带
          }],
        //当前页码
        currentPage: 1,
        //表单填报的数据
        CyjsbdaForm: {
          id:'',
          approveStatus:'',//审核状态
          approveBz:'',//审核备注
          zyq: '',//作业区
          sbmc: '',//设备名称
          byqc:'',//保养期次
          ksbysj: '',//开始保养时间
          wcsj: '',//完成时间
          yscbyjgsj: '',//与上次保养间隔时间
          bygs: '',//保养工时
          byzynrsj: '',//保养主要内容数据 （包括更换主要配件及试车结果）
          byfz: '',//保养负责人
          ysr:'',//验收人
          bz:'',//备注
  
          },
        //验证规则
        rules: {
          zyq: [
            { required: true, message: '请输入作业区', trigger: 'blur' },
          ],
          sbmc: [
            { required: true, message: '请输入设备名称', trigger: 'blur' }
          ],
          dw: [
            { required: true, message: '请输入单位', trigger: 'biur' }
          ],
        },
        //时间快捷选择
        pickerOptions: {
          disabledDate(time) {
            return time.getTime() > Date.now();
          },
          shortcuts: [{
            text: '今天',
            onClick(picker) {
              picker.$emit('pick', new Date());
            }
          }, {
            text: '昨天',
            onClick(picker) {
              const date = new Date();
              date.setTime(date.getTime() - 3600 * 1000 * 24);
              picker.$emit('pick', date);
            }
          }, {
            text: '一周前',
            onClick(picker) {
              const date = new Date();
              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
              picker.$emit('pick', date);
            }
          }]
        },
        //获取当前日期
        currentTime:'',
        //编辑框是否显示
        dialogFormVisible: false,
        //弹出框是否是查看
        ischeck: false,
        //控制查看时不可更改数据
        isInput:false,
        //弹出框标题
        myDialogTitle: '',
  
      }
    },
    created(){
      this.search();
    },
    mounted(){
      this.filterTime();
      // this.initDate();
    },
    methods: {
      /**
      * 查询列表
      */
      async search() {
        // this.pageNo = pageNo; //当前页码
        // this.pageSize = pageSize; //每页显示数量
        //发送查询请求
        let res = await CyjsbdaApi.getCyjsbdaList(this.pageNo,this.pageSize);
        //判断是否成功
        if(res.success){
          console.log(123456);
          console.log(res.data);
          //赋值
          this.tableData = res.data.records;
          //总数量
          this.total = res.data.total;
        }
      },
      onSubmit() {
        console.log('submit!');
      },
      //关闭对话框
      handleClose(done) {      
        // 清空表单
        // this.$refs['CyjsbdaForm'].resetFields();
        // 清空表单校验，避免再次进来会出现上次校验的记录
        this.$refs['CyjsbdaForm'].clearValidate()
        done()
        
      },
        // 弹框关闭触发
      close(formName) {
        this.dialogFormVisible = false;
        // 清空表单
        // this.$refs[formName].resetFields();
        // 清空表单校验，避免再次进来会出现上次校验的记录
        this.$refs[formName].clearValidate()
      },
  
      submitForm(formName) {
        //表单验证
        this.$refs[formName].validate(async (valid) => {
            if (valid) {
                let res = null;
                console.log(334345)
                console.log(this.CyjsbdaForm.id+"111")
                //判断菜单ID是否为空
                if (this.CyjsbdaForm.id === '') {
                  this.CyjsbdaForm.rq = this.currentTime;
                    //发送添加请求
                    res = await CyjsbdaApi.addCyjsbda(this.CyjsbdaForm);
                } else { 
                    //发送审核请求
                    console.log(334345)
                    res = await CyjsbdaApi.updateCyjsbda(this.CyjsbdaForm);
                }
                console.log(res)
                //判断是否成功
                if (res.success) {
                    //this.$message.success(res.message);
                    this.$message({ message: '修改审核状态成功！', type: 'success' });
                    //刷新
                    this.search();
                    //关闭窗口
                    this.dialogFormVisible = false;
                } else {
                  console.log(res)
                    this.$message.error(res.message);
                }
            }
        })
      },
       
      handleClick(row, handle) {
        // console.log(row.approveStatus);
        this.dialogFormVisible = true;
        if (handle == 'check') {
          this.myDialogTitle = '抽油机设备档案'
          this.saveAsDialog = 'saveAsDialog1' 
          this.ischeck = true
          this.isInput = true;// 1.表单禁用
          // this.CyjsbdaForm = row
          this.$objCopy(row, this.CyjsbdaForm);//把当前要编辑的数据复制到数据域，给表单回显
          this.$message({ message: '成功打开', type: 'success' });
        } else if (handle == 'edit') {
            if(row.approveStatus!=1){
              this.myDialogTitle = '抽油机设备档案编辑'
              this.saveAsDialog = 'saveAsDialog2'
              this.ischeck = false
              this.isInput = false     
              this.$objCopy(row, this.CyjsbdaForm);//把当前要编辑的数据复制到数据域，给表单回显
              this.CyjsbdaForm.approveStatus = row.approveStatus.toString()
            }else {
              this.dialogFormVisible = false;
              this.$message({ message: '已通过不可审核！', type: 'error' });
            }
        }
      },
      
      /*** 当每页数量发生变化时触发该事件 */
      handleSizeChange(size) {
        console.log(size);
        this.pageSize = size;
        //将每页显示的数量交给成员变量
        this.search(this.pageNo, size);
      },
      /*** 当页码发生变化时触发该事件 */
      handleCurrentChange(page) {
        console.log(page);
        this.pageNo = page;
        //调用查询方法
        this.search(page, this.pageSize);
      },
      // 序号计算
      indexMethod (index) {
      // index默认在0开始，这里+1
        return index + 1 + (this.pageNo - 1) * this.pageSize
      },
      // 获取当前日期
      filterTime() {
        var date = new Date();
        var y = date.getFullYear();
        var m = date.getMonth() + 1;
        m = m < 10 ? '0' + m : m;
        var d = date.getDate();
        d = d < 10 ? '0' + d : d;
        this.currentTime = y + '-' + m + '-' + d;
      },
    }
  }
  </script>
  
  <style lang="scss" scoped>
  // 标题
  .mytitle {
    font-size: large;
    padding-left: 10px;
    margin-bottom: 16px;
    float: left;
  }
  
  //按钮组
  .myButtons {
    float: right
  }
  
  //格子的样式
  .bg-white {
    background: #ffffff;
  }
  
  .grid-content {
    padding: 10px;
    margin-bottom: 10px;
    border-radius: 4px;
  }
  
  .calendar ::v-deep .el-button-group::before {
    display: none;
  }
  
  .calendar ::v-deep .el-button-group::after {
    display: none;
  }
  
  // 分割线样式
  .el-divider--horizontal {
    display: block;
    height: 2px;
    width: 100%;
    margin: 24px 0;
  }
  
  // 表单各项的样式
  .el-form-item {
    margin: 15px 10px 15px 10px;
  }
  
  //表单禁用字体样式
  .el-input.is-disabled ::v-deep .el-input__inner {
      color: #606266;
    }
  //对话框宽度
  // .customWidth{
  //         width:80%;
  //     }
  ::v-deep .saveAsDialog {
    width: 60% !important;
  }
  </style>